public class Demo {
    public int longestOnes(int[] nums, int k){
        //给定一个二进制数组 nums 和一个整数 k，假设最多可以翻转 k 个 0 ，
        //返回执行操作后 数组中连续 1 的最大个数。
        int len = 0;
        int left = 0;
        int right = 0;
        int newlen = 0;
        int zerolen = 0;
        while (right < nums.length){
            if (nums[right] == 0){
                zerolen++;
                len++;
            }else {
                len++;
            }
            while(zerolen > k){
                newlen = Math.max(len - 1, newlen);
                if (nums[left] == 0){
                    left++;
                    zerolen--;
                    len--;
                }else {
                    left++;
                    len--;
                }
            }
            right++;
        }
        return Math.max(len, newlen);
    }
}
